Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

255
Vistas
Rieles - ActionCable: "action_cable.url" para Kubernetes/Minikube

¿Qué config.action_cable.url debe configurarse para websockets/Rails/Kubernetes/Minukube con Nginx?

Cuando se ejecuta "docker-compose" localmente, un proceso Nginx frente a un proceso Rails (no solo API, sino con SSR) y un proceso de Cable independiente (consulte las guías ), los websockets funcionan bien al pasar el siguiente lado del servidor (en diga "/config/application.rb", con action_cable_meta_tag establecido en los diseños):

 config.action_cable.url = 'ws://localhost:28080'

Estoy apuntando a Kubernetes con Minikube localmente: implementé Nginx frente a una implementación de Rails (RAILS_ENV=producción) junto con una implementación de Cable, pero no puedo hacer que funcione. El servicio de Cable es interno de tipo "ClusterIP", con "port" y "targetPort". Probé varias variaciones.

¿Algún consejo?

Tenga en cuenta que uso Nginx -> Rails + Cable en Minikube, y el punto de entrada es el servicio Nginx, externo del tipo LoadBalancer donde usé:

 upstream rails { server rails-svc:3000; } server { listen 9000 default_server; root /usr/share/nginx/html; try_files $uri @rails; add_header Cache-Control public; add_header Last-Modified ""; add_header Etag ""; location @rails { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header Host $http_host; proxy_pass_header Set-Cookie; proxy_redirect off; proxy_pass http://rails; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }

Para permitir cualquier origen, también configuro:

 config.action_cable.disable_request_forgery_protection = true
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tengo una respuesta: en un clúster de Minikube, no coloque nada y deshabilite la protección contra falsificación, Rails establecerá el valor correcto por defecto. Cuando Nginx está frente a un pod de Rails y un pod de ActionCable/websocket independiente (la imagen de Rails se inicia con el bundle exec puma -p 28080 cable/config.ru ), si nombro "cable-svc" el servicio que expone el contenedor de ActionCable , y "rails-svc" el del contenedor Rails, debe:

  • en K8, no establezca la configuración para CABLE_URI
  • en el backend de Rails, no tiene la URL (desconocido 127.0.0.1:some_port ), haga lo siguiente:
 # config.action_cable.url <-- comment this config.action_cable.disable_request_forgery_protection=true
  • en la configuración de Nginx, agregue una ubicación específica para la ruta "/cable":
 upstream rails { server rails-svc:3000; } server { [...root, location @rails {...}] location /cable { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass "http://cable-svc:28080"; } }

Verifique los registros, no más WebSockets en Rails y Cable responde.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda